package com.yand.frame.controller.system.menu;


import com.yand.frame.common.Result;
import com.yand.frame.entity.ActivityMenu;
import com.yand.frame.service.MenuService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import java.util.List;

/**
 * 菜单管理
 * 添加对于菜单的操作，菜单的增删改查，以及授权操作
 *
 */

@Controller()
@RequestMapping("system/menu")
public class MenuController {

    //dubbo 注入 menuService
    @Autowired
    private MenuService menuService;


    /**
     * 菜单列表页面
     * @param model
     * @return
     */
    @RequestMapping("/menuList")
    public String toPage(Model model){
        //查询菜单的名称以及把菜单全部通过树形结构加载出来
        List<ActivityMenu> menuList = menuService.getAllMenuList();
        model.addAttribute("menuList",menuList);
        return "system/menu/menuList";
    }


    /**
     * 跳转菜单详情页面
     * @return
     */
    @GetMapping("/update/{menuId}")
    public String toEditPage(@PathVariable(value = "menuId") String menuId, Model model){
        //前台进行属性 展示。
        ActivityMenu activityMenu = menuService.getActivityMenuById(Integer.valueOf(menuId));
        model.addAttribute("menu",activityMenu);
        return "system/menu/menu_edit";
    }

    /**
     * 保存菜单方法
     * @return
     */
    @PostMapping("/update")
    @ResponseBody
    public Result editMenu(ActivityMenu activityMenu){
        //声明一个返回对象
        Result result = new Result();

        menuService.updateMenu(activityMenu);


        return new Result(0);
    }

    /**
     * 添加菜单
     */
    @GetMapping("/add/{menuId}")
    public String add(@PathVariable(value = "menuId") String menuId,Model model){
        ActivityMenu menu = menuService.getActivityMenuById(Integer.parseInt(menuId));
        model.addAttribute("menu",menu);
        return "system/menu/menu_add";
    }


    @PostMapping("/add")
    @ResponseBody
    public Result addMenu(ActivityMenu activityMenu){

        menuService.addMenu(activityMenu);

        return new Result(0);

    }




}
